package com.un.ebs.product.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.un.ebs.product.domain.ProductSaleClass;
import com.un.ebs.product.dto.ProductSaleClassDto;
import com.un.ebs.sys.dto.ObjectParentAndIndexChangeDto;

import java.util.List;

/**
 * <p>
 * 服务类
 * </p>
 *
 * @author liubo
 * @since 2019-09-16
 */
public interface ProductSaleClassService {

    void update(ProductSaleClassDto req);

    ProductSaleClass queryById(String id);

    void changeParent(String id, String parentId);

    void addByProduct(String classId, List<String> productIds);

    void removeByProduct(String classId,List<String> productIds);

    /**
     * 在一个树形结构中，修改节点的父级对象ID和Index值。
     *
     * @param nodes
     */
    void changeNode(List<ObjectParentAndIndexChangeDto> nodes);

    List<ProductSaleClass> queryAll();

    List<ProductSaleClass> queryParent();

    List<ProductSaleClass> queryByParentId(String parentId);

    IPage<ProductSaleClass> queryPageByParentId(String parentId, int pageSize, int pageIndex);

    /**
     * 根据指定的类别ID，递归返回所有父级
     *
     * @param classId
     * @return
     */
    List<String> queryParentIds(String classId);

    void changeSort(String id, int index);

    void delete(String id);

}
